<template>
	<view class="goods-item">
		<!-- 商品左侧图片区域 -->
		<view class="goods-item-left">
			<radio @click.stop="radioClickHandler(goods)" v-if="showRadio" :checked="goods.goods_state" color="#c00000"></radio>
			<image class="goods-pic" :src="goods.goods_small_logo || defaultPic" mode="aspectFill"></image>
		</view>
		<!-- 商品右侧信息区域 -->
		<view class="goods-item-right">
			<!-- 商品标题 -->
			<view class="goods-name">{{goods.goods_name}}</view>
			<view class="goods-info-box">
				<!-- 商品价格 -->
				<view class="goods-price">
					￥{{goods.goods_price.toFixed(2)}}
				</view>
				<!-- 商品数量 -->
				 <uni-number-box v-if="showNum" :min="1" :value="goods.goods_count" @change="numChangeHandler"></uni-number-box>
			</view>
		</view>
	</view>
</template>

<script setup>
import { ref } from 'vue';
	const props = defineProps({
		goods:{
			type:Object,
		},
		showRadio:{
			type:Boolean,
			default:false
		},
		showNum:{
			type:Boolean,
			default:false
		}
	})
	const defaultPic = ref('https://img3.doubanio.com/f/movie/8dd0c794499fe925ae2ae89ee30cd225750457b4/pics/movie/celebrity-default-medium.png')
	const emit = defineEmits(['radiochange','num-change'])
	const radioClickHandler = () => {
		// console.log(props.goods)
		emit('radiochange',{
			goods_id: props.goods.goods_id,
			goods_state: !props.goods.goods_state
		})
	}
	const numChangeHandler = (val) => {
		emit('num-change',{
			goods_id: props.goods.goods_id,
			      // 商品的最新数量
			goods_count: +val
		})
	}
</script>

<style lang="scss" scoped>
.goods-item{
	display: flex;

	padding: 10px 5px;
	border-bottom: 1px solid #f0f0f0;
	.goods-item-left{
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-left: 5px;
		.goods-pic{
			width: 100px;
			height: 100px;
			display: block;
		}
	}
	.goods-item-right{
		display: flex;
		flex: 1;
		flex-direction: column;
		justify-content: space-between;
		margin-left: 10px;
		.goods-name{
			font-size: 13px;
		}
		.goods-info-box{
			display: flex;
			align-items: center;
			justify-content: space-between;
		}
		.goods-price{
			font-size: 16px;
			color: #c00000;
		}
	}
}
</style>